自簽憑證 self-signed certificate

瀏覽器之所以對 自簽憑證 (self-signed certificate) 跳出警告,是因為它沒有被「受信任的根憑證 (Trusted Root CA)」簽署。要讓瀏覽器不再警告,核心做法就是 讓用戶端信任你的憑證或你自己的 CA。


🛠️ 方法一:直接信任自簽憑證

  • 產生自簽憑證(例如用 openssl)。
  • 將該憑證匯入到使用者電腦的 受信任根憑證庫:
    • Windows:使用「憑證管理員 (certmgr.msc)」匯入到 Trusted Root Certification Authorities。
    • macOS:用「鑰匙圈存取 (Keychain Access)」匯入並設為「永遠信任」。
    • Linux:放到 /usr/local/share/ca-certificates/ 並執行 update-ca-certificates。
  • 瀏覽器就會把它當作合法憑證,不再跳警告。

🛠️ 方法二:建立公司內部 CA

  • 用工具(如 Microsoft AD CS、OpenSSL、CFSSL)建立一個 內部 CA。
  • 先產生一個「根憑證」,再用它簽發伺服器憑證。
  • 將「根憑證」安裝到所有員工電腦的信任庫。
  • 之後所有由這個 CA 簽發的憑證都會被瀏覽器信任。
  • 優點:集中管理,方便續期與控管。

🛠️ 方法三:透過企業部署工具自動分發

  • 如果公司有 Active Directory,可以用 Group Policy (GPO) 自動推送根憑證到所有 Windows 用戶端。
  • 在 macOS 或 Linux 環境,可以透過 MDM (Mobile Device Management) 或自動化腳本分發。
  • 適合大規模環境,避免手動安裝。

📌 實務建議

  • 小規模測試 → 直接匯入自簽憑證即可。
  • 公司內網正式環境 → 建立內部 CA,並透過 GPO/MDM 自動分發。
  • 若有外部需求 → 改用 DNS 驗證的第三方 CA(如 ZeroSSL、Let’s Encrypt DNS-01)。

👉 總結:要讓瀏覽器不跳警告,必須讓它「信任」你的憑證來源。最乾淨的做法是建立 內部 CA,並把它的根憑證安裝到所有用戶端。

步驟清單 (Windows/Linux/macOS),讓你能快速部署內部 CA 並分發憑證?

太好了 🙌。下面我幫你整理一份 跨平台步驟清單,讓你能快速部署內部 CA 或自簽憑證,並確保瀏覽器不跳警告。


🖥 Windows (適合公司內網大規模環境)

  1. 建立內部 CA
    • 使用 Active Directory Certificate Services (AD CS) 或 OpenSSL 建立根憑證。
    • 用根憑證簽發伺服器憑證。
  2. 分發根憑證
    • 透過 Group Policy (GPO) 自動推送根憑證到所有用戶端。
    • 路徑:Computer Configuration → Policies → Windows Settings → Security Settings → Public Key Policies → Trusted Root Certification Authorities。
  3. 驗證
    • 用戶端重新啟動後,瀏覽器會自動信任該 CA 簽發的憑證。

🍎 macOS

  1. 建立或取得根憑證(自簽或內部 CA)。
  2. 匯入憑證
    • 打開 Keychain Access → 選擇「System」金鑰圈。
    • 匯入根憑證,並設定為「Always Trust」。
  3. 分發方式
    • 若有 MDM(如 Jamf),可集中推送憑證到所有 Mac。

🐧 Linux (Ubuntu/Debian 為例)

  1. 建立或取得根憑證。
  2. 安裝根憑證
    • 將憑證檔案放到 /usr/local/share/ca-certificates/。
    • 執行 sudo update-ca-certificates。
  3. 驗證
    • 瀏覽器(如 Chrome/Firefox)會自動讀取系統信任庫。

📌 實務建議

  • 小規模測試:直接在每台機器匯入自簽憑證即可。
  • 正式公司環境:建立 內部 CA,並透過 GPO/MDM 自動分發。
  • 混合環境:Windows 用 GPO,macOS/Linux 用 MDM 或腳本。

👉 這樣做的好處是:

  • 不需要公開 IP。
  • 不需要依賴 Let's Encrypt。
  • 用戶端不會再跳出「不受信任

OpenSSL 指令範例,快速建立自簽根憑證和伺服器憑證

OpenSSL 指令範例清單,能快速建立 自簽根憑證 (Root CA) 與 伺服器憑證,並在公司內網環境中部署。


🛠 建立 Root CA (自簽根憑證)
`bash

  1. 建立 Root CA 私鑰
    openssl genrsa -out rootCA.key 4096
  2. 建立 Root CA 憑證 (有效期 10 年)
    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.crt
    -subj "/C=TW/ST=Taiwan/L=Hsinchu/O=MyCompany/OU=IT/CN=MyCompany-RootCA"
    `
    👉 rootCA.crt 就是要安裝到用戶端信任庫的「根憑證」。

🛠 建立伺服器憑證
`bash

  1. 建立伺服器私鑰
    openssl genrsa -out server.key 2048
  2. 建立憑證簽署請求 (CSR)
    openssl req -new -key server.key -out server.csr
    -subj "/C=TW/ST=Taiwan/L=Hsinchu/O=MyCompany/OU=IT/CN=server.mycompany.local"
  3. 建立憑證配置檔 (SAN 支援)
    cat > server.ext <<EOF
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = server.mycompany.local
    DNS.2 = intranet.mycompany.local
    EOF
  4. 用 Root CA 簽發伺服器憑證
    openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial
    -out server.crt -days 825 -sha256 -extfile server.ext
    `
    👉 產生的 server.crt + server.key 就是伺服器要用的憑證。

🖥 用戶端安裝方式

  • Windows:匯入 rootCA.crt 到「Trusted Root Certification Authorities」。
  • macOS:用 Keychain Access 匯入 rootCA.crt,設為「Always Trust」。
  • Linux:放到 /usr/local/share/ca-certificates/,再執行 update-ca-certificates。

📌 實務建議

  • 測試環境:直接用自簽 Root CA。
  • 正式環境:建立公司內部 CA,集中管理憑證。
  • 大規模部署:Windows 用 GPO,macOS/Linux 用 MDM 或腳本自動分發。

Also See

2
1:25 AM - December 07, 2025
1:25 AM - December 07, 2025